package test3_12;

import java.util.Arrays;

public class Homework6_10_onlyOneItem {
    public static void main(String[] args) {
        /*
        给你一个有序数组 nums ，创建一个新的数组nums2，使每个元素只出现一次；
        例 1：
        输入：nums = [1,1,2]
        输出：nums2 = [1,2]
        示例 2：
        输入：nums = [0,0,1,1,1,2,2,3,3,4]
        输出：nums2 = [0,1,2,3,4]
         */

        //初始化一个原始数组nums
        int[] nums = {0,0,1,1,1,2,2,3,3,4};
        //因为是前一个和后一个比较，两个数显示一个变化，所以初始化sum从1开始
        int sum = 1;
        //循环计算sum表示nums中不同数的个数用于定义新的数组的长度
        for (int i = 0; i < nums.length-1; i++) {
            if(nums[i]!=nums[i+1]){
                sum+=1;
            }
        }

        //定义新的数组用于存放元素
        int[] nums2 = new int[sum];
        //因为第一个与后一个进行比较，先把第一个赋给新数组，使下面循环只要把不同的后一个数组赋给nums2即可
        nums2[0] = nums[0];
        //定义索引，计算循环中nums数组变化后索引的位置
        int index_nums = 1;
        //循环观察nums排序好的数组交接变化的地方即为不同的数，然后给他存放在nums2数组中
        for (int i = 1; i < nums2.length; i++) {
            for (int j = index_nums; j < nums.length-1; j++) {
                if(nums[j]!=nums[j+1]){
                    nums2[i] = nums[j+1];
                    index_nums = j+1;
                    break;
                }
            }
        }
        System.out.println(Arrays.toString(nums2));
    }
}
